package com.bosssoft.boss_exam_core.util.web;
import java.util.HashMap;
import java.util.Map;

/**
 * 服务器响应工具类
 */
public class ResponseUtil {
    /**
     * 返回成功响应
     * @return 响应对象
     */
    public static Object
    ok() {
        Map<String, Object> obj = new HashMap<String, Object>();
        obj.put("errno", 0);
        obj.put("errmsg", "成功");
        return obj;
    }

    /**
     * 返回成功响应
     * @param data 响应对象的携带数据
     * @return 响应对象
     */
    public static Object ok(Object data) {
        Map<String, Object> obj = new HashMap<String, Object>();
        obj.put("errno", 0);
        obj.put("errmsg", "成功");
        obj.put("data", data);
        return obj;
    }

    /**
     * 返回成功响应
     * @param errmsg 错误描述信息
     * @param data 响应对象的携带数据
     * @return 响应对象
     */
    public static Object ok(String errmsg, Object data) {
        Map<String, Object> obj = new HashMap<String, Object>();
        obj.put("errno", 0);
        obj.put("errmsg", errmsg);
        obj.put("data", data);
        return obj;
    }

    /**
     * 返回失败响应
     * @return 响应对象
     */
    public static Object fail() {
        Map<String, Object> obj = new HashMap<String, Object>();
        obj.put("errno", -1);
        obj.put("errmsg", "错误");
        return obj;
    }

    /**
     * 返回失败响应
     * @param errno 错误编号
     * @param errmsg 错误信息
     * @return 响应对象
     */
    public static Object fail(int errno, String errmsg) {
        Map<String, Object> obj = new HashMap<String, Object>();
        obj.put("errno", errno);
        obj.put("errmsg", errmsg);
        return obj;
    }

    /**
     * 返回参数不对的响应对象
     * @return 响应对象
     */
    public static Object badArgument(){
        return fail(401, "参数不对");
    }
    /**
     * 返回参数值不对的响应对象
     * @return 响应对象
     */
    public static Object badArgumentValue(){
        return fail(402, "参数值不对");
    }
    /**
     * 返回请登录的响应对象
     * @return 响应对象
     */
    public static Object unlogin(){
        return fail(501, "您是未登入用户，请先行登录");
    }
    /**
     * 返回系统内部错误的响应对象
     * @return 响应对象
     */
    public static Object serious(){
        return fail(502, "系统内部错误");
    }
    /**
     * 返回业务不支持的响应对象
     * @return 响应对象
     */
    public static Object unsupport(){
        return fail(503, "业务不支持");
    }

    /**
     * 权限不足
     * @return
     */
    public static  Object InsufficientPermissions(){return  fail(504,"权限不足");}


    /**
     * 账户被锁定
     * @return
     */
    public static Object AccountLock(){
        return fail(505, "账户被锁定");
    }

    /**
     *密码过期
     * @return
     */
    public static  Object CredentialsExpired(){return  fail(506,"密码过期");}
    /**
     *账户过期
     * @return
     */
    public static  Object AccountExpired(){return  fail(507,"账户过期");}


    /**
     *账户被禁用
     * @return
     */
    public static  Object DisabledCount(){return  fail(508,"账户被禁用");}
    /**
     *登入失败
     * @return
     */
    public static  Object LoginFail(){return  fail(509,"登入失败");}
    /**
     *令牌错误
     * @return
     */
    public static Object CheckTokenFail() {return  fail(510,"令牌校验失败"); }
    /**
     *令牌错误
     * @return
     */
    public static Object UsernameNotFound() {return  fail(510,"用户名未找到"); }

    /**
     *管理员已经存在
     * @return
     */
    public static Object AdminIsExist() {return  fail(511,"管理员已经存在，请更换用户名"); }

}

